"""
生成器： 本质上，就是一个不断计算->中止->计算->中止 .... 结束 迭代器
时间换空间
迭代器：是一个对象，对象内部实现了 __next__ 魔法方法
通过next或者for循环调用时，会隐式的调用这个魔法方法
"""
i = [x for x in range(100000)]
p = (x for x in range(1000))

def test_1():
    yield 1
    yield 2
    yield 3

import sys

print(sys.getsizeof(i))
print(sys.getsizeof(p))

for q in p:
    print(q)